Detailed explanation, examples, and prevention strategies for Broken Access Control vulnerabilities.
Broken Access Control refers to security vulnerabilities where an attacker can bypass authorization to perform actions or access resources they are not supposed to. Simply put, the application fails to enforce the user's intended permissions.
Access control determines what an authenticated user is allowed to do. When broken, attackers can act as higher-privileged users or access other users’ private data.
Occurs when an internal object (file, ID, database key) is exposed and manipulable by attackers.
Example: A user views their bank statement at https://example.com/api/get_statement?id=1001. Changing the ID to 1002 exposes another customer’s statement.
A user gains access to functionality or data restricted to higher privilege levels (admin, manager).
Example: A standard user accesses /admin/delete_user due to missing server-side role checks.
A user accesses resources belonging to another user of the same privilege level.
Example: Modifying an API request to change the user ID in a profile update endpoint to another user's ID successfully updates their information.
Attackers circumvent access control via:
/admin without proper redirects.